/**
 * HTTP请求工具
 * 用于发送HTTP请求，特别是调用微信小程序相关接口
 */
const axios = require('axios');

class HttpRequest {
  /**
   * 发送GET请求
   * @param {string} url - 请求URL
   * @param {Object} params - 请求参数
   * @param {Object} headers - 请求头
   * @returns {Promise<Object>} 响应数据
   */
  static async get(url, params = {}, headers = {}) {
    try {
      const response = await axios.get(url, {
        params,
        headers
      });
      return response.data;
    } catch (error) {
      console.error('GET请求失败:', error.message);
      throw new Error(`GET请求失败: ${error.message}`);
    }
  }

  /**
   * 发送POST请求
   * @param {string} url - 请求URL
   * @param {Object} data - 请求数据
   * @param {Object} headers - 请求头
   * @returns {Promise<Object>} 响应数据
   */
  static async post(url, data = {}, headers = {}) {
    try {
      const response = await axios.post(url, data, {
        headers
      });
      return response.data;
    } catch (error) {
      console.error('POST请求失败:', error.message);
      throw new Error(`POST请求失败: ${error.message}`);
    }
  }
}

module.exports = HttpRequest;